package filetypecounter;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

public class FileTypeCounter {
    // 定义一个HashMap来存储文件类型及其对应的数量
    private Map<String, Integer> fileTypeCounts = new HashMap<>();

    public Map<String, Integer> getFileTypeCounts() {
        return fileTypeCounts;
    }

    /**
     * 递归统计各类文件的数量
     * @param directory 要搜索的起始目录
     */
    public void countFileTypes(File directory){
        File[] files = directory.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    countFileTypes(file);
                }else {
                    String fileName = file.getName();
                    String extension = fileName.substring(fileName.lastIndexOf(".") + 1)
                            .toLowerCase();

                    fileTypeCounts.put(extension, fileTypeCounts.getOrDefault(extension, 0) + 1);
                    System.out.println("文件: " + fileName + " 类型: " + extension);
                }
            }
        }
    }
}
